Devices such as radios, utility meters, and other electronic tools may include processing capabilities that allow the devices to be remotely controlled or configured. For example, an intelligent utility meter can execute commands such as transmitting collected data to a head-end server, loading configuration data that controls one or more operating parameters of the meter, modifying operations in response to external conditions (e.g., daylight savings time changeover, time of day, etc.). These processing capabilities can be provided using relatively simple programming languages that do not require complex operating systems.
These types of intelligent devices may have limited memory storage or other computing resources. For example, a given device may be unable to store program code larger than four or eight kilobytes. The limitations on memory storage or other computing may prevent at least some debugging features from being included in the program code that is used to operate the intelligent device.
The omission of debugging features from program code that is used to operate an intelligent device can present disadvantages. For example, a developer may be unable to accurately or efficiently identify which portion of program code is causing a malfunction or other issue in the operation of an intelligent device. An inability to accurately or efficiently identify portions of program code that cause malfunctions or other issues may increase the time and costs associated with developing program code to control intelligent devices. Furthermore, inability to accurately identify portions of program code that cause malfunctions or other issues may cause developers to make errors when attempting to correct these malfunctions or other issues in the program code, which can negatively impact the operation of the intelligent device.
It is desirable to provide improved debugging features for program code used to control intelligent devices with limited computing resources.